/**
 *  小数点格式控制
 * @param {String} input 监听的输入框的内容
 */
export function formatPoint(input) {
    const countDots = input.split('.').length - 1
    const regex = /^\d+(\.\d{0,9})?$/
    if (!regex.test(input) || countDots > 1) {
        input = input.slice(0, -1)
    }
    return input
}

/**
 * 合计表格内容
 * @param {Object} params 表格合计的对象内容
 * @param {Array} tempArr 需要合计列的字段名称
 * @param {String} unitName 合计单位
 * @returns {Array} 返回一个数组
 */
export function summariesData(params, tempArr, unitName) {
    const { columns, data } = params
    const sums = []
    columns.forEach((column, index) => {
        if (index === 0) {
            sums[index] = '合计'
            return
        }
        if (tempArr.includes(column.property)) {
            const values = data.map(item => Number(item[column.property]))
            sums[index] = values.reduce((prev, curr) => {
                const value = Number(curr)
                if (!isNaN(value) && curr!=='') {
                    return prev + curr
                } else {
                    return prev
                }
            }, 0).toFixed(2)
            sums[index] += ` ${unitName}`
        }
    })
    console.log('sums', sums)
    return sums
}

/**
 * 去除仓库children内容
 */
export  function processChildren(data){
    return data.map(item => {
        // 复制当前项，保持第一层级的数据不变
        const processedItem = {
            ...item
        }
        // 如果当前项有子级数据，则递归处理子级数据
        if (item.children && item.children.length > 0) {
            processedItem.children = processChildren(item.children)
        }
        // 将子级数据的值设为 0
        if (processedItem.children) {
            processedItem.children = []
        }
        return processedItem
    })
}
